import renderTypeEnum from "../enum/renderType.enum"
import Command from "./command"

export class RequestRenderTargetCommand extends Command {
  constructor() {
    super(...arguments)
    this.id = "RequestRenderTargetCommand"
  }
}
export class Context2dCaptureCommand extends Command {
  constructor(renderTarget: any, context: any) {
    super()
    this.payload = { renderTarget, context }
  }
}
export class ScreenCaptureCommand extends Command {
  constructor(renderTarget: any, sceneObject: any, camera: any) {
    super()
    this.payload = { renderTarget, sceneObject, camera }
  }
}
export class RenderToCubemapCommand extends Command {
  constructor(renderTarget: any, sceneObject: any, camera: any) {
    super()
    this.payload = { renderTarget, sceneObject, camera }
  }
}
export class EquirectangularCommand extends Command {
  constructor(renderTarget: any, texture: any, heading = 0) {
    super()
    this.payload = { renderTarget, texture, heading }
  }
}
export class ComposeTargetsCommand extends Command {
  constructor(target1: any, target2: any) {
    super()
    this.payload = { target1, target2 }
  }
}
export class SetChunkRenderModeCommand extends Command {
  static modes: typeof renderTypeEnum
  constructor(mode: any) {
    super()
    this.id = "SET_CHUNK_RENDER_MODE"
    this.payload = { mode }
  }
}
SetChunkRenderModeCommand.modes = renderTypeEnum
